Skip to content

Pin Windows pending-delete removal for remove and prune (#1837) - #1839

Closed
leehack wants to merge 3 commits into
mainfrom
sweep/1837-model-cache-tests
Closed

leehack wants to merge 3 commits into
mainfrom
sweep/1837-model-cache-tests

Conversation

@leehack

@leehack leehack commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Pins Windows pending-delete handling for remove(cacheKey) and prune(maxAge: Duration.zero) (new cases in the "on Windows, an entry another remover is deleting" group), as #1825 only covered clear.
  • clearHeldAtRemovalLock now fails after 10 s naming the missing .removal.lock instead of hanging to the suite timeout.
  • Documents (comments only, no behavior change) that an ACL denial reading as notFound is walked past in _cacheLockKey and fails later with a different error type.
  • Concurrency test compares resolved paths, so it passes with TMPDIR="$(mktemp -d)" on macOS.

Refs #1837 (items 1-4; the supervisor items remain open).

Production-readiness scope

  • User-facing scope: None; tests and comments only.
  • Supported platforms/paths: Windows (new tests), macOS/Linux/Windows VM (test path fix).
  • Unsupported or intentionally unavailable paths: N/A, no runtime change.
  • Out of scope / follow-ups: Remaining #1837 items (supervisor).

Completeness checklist

  • Declared scope is fully implemented.
  • Unsupported platform/option combinations: N/A, no behavior change.
  • Docs/changelog: N/A, not user-observable.
  • Regression coverage: new remove/prune pending-delete tests; mutation-checked (see below).
  • Validation coverage registry: N/A, no public capability change.
  • Security/privacy: no secrets or paths added to logs/errors.
  • Follow-ups tracked in #1837.

PR type guidance

  • Bugfix PR: N/A, test/comment-only; the underlying fix landed in #1825.

Test Plan

  • dart run tool/prepare_workspace.dart
  • dart format --output=none --set-exit-if-changed .
  • dart analyze
  • dart test -p vm -j 1 --exclude-tags local-only
  • dart test -p chrome --exclude-tags local-only
  • coverage-lib
  • Other: check_platform_boundaries.dart

Matrix Evidence

Matrix row Scope covered Platform / model / backend Result Evidence / notes
N/A IO download-manager unit suites macOS VM, Windows CI shard see CI Classifier marks high-risk only because lib/src/platform/io/ is touched (comments); no model/artifact evidence applies

Review Notes

  • Independent review status: independent audit PASSED at 7d5b274 vs ec4bf4f (no P1/P2; lib diff comment-only; mutation killed exactly the 3 target tests). Two comment-precision P3s fixed in a comment-only follow-up at 403835b.
  • Mutation proof: dropping the errno-5 branch in _cacheEntryDirectory on a throwaway branch (PR #1838) is expected to fail the new tests on Windows; result recorded in a comment below.
  • CI status / head SHA: green at 403835b (32 pass, 9 skipped, 0 fail), also green at 7d5b274

High-risk regression review

  • Classification: high-risk by path (backendRuntime); the lib/ change is comments only
  • Implementation task: this PR's worker session
  • Independent blocking QA task: fresh-agent exact-head audit PASSED at (earlier full audit at 7d5b274; delta comment-only); 0 P1, 0 unresolved threads
  • Exact head / current base: / b78008c (merge-base with main tip ec4bf4f, which the audits diffed against)
  • Production-branch deletion, bypass, or miswire proof: mutation control (closed #1838, run): dropping the errno-5 handling from _cacheLockKey fails exactly the clear, remove and prune "waits for the removal lock" tests on windows-runtime 1/2
  • Affected-family real-model/artifact evidence: N/A, no model or parser behavior touched
  • Explicit unavailable-family or other N/A evidence: readiness evaluator high_risk_readiness.dart on this head/base exits 2 (unverifiedPrerequisites, as designed locally); evidence is not committed
  • Known PR-caused P1 regressions: 0
  • Unresolved review threads: 0

@leehack

leehack commented Nov 9, 2026

Copy link
Copy Markdown
Owner Author

Mutation proof: with the errno-5 handling dropped from _cacheLockKey on a throwaway branch (closed #1838, run), the clear, remove and prune "waits for the removal lock" tests fail on Windows (windows-runtime 1/2). The errno-5 branch in _cacheEntryDirectory is only reachable in the check-to-resolve race, covered by the existing clear test; remove swallows that error in its snapshot read, so no remove/prune test targets it.

@leehack

leehack commented Nov 9, 2026

Copy link
Copy Markdown
Owner Author

Landed via batch integration PR #1843 (rebase merge), one commit per constituent.

@leehack leehack closed this Nov 9, 2026
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Chat app preview removed for leehack/llamadart-chat-pr-1839.

leehack added a commit that referenced this pull request Nov 9, 2026
* Raise the Apple companions' Flutter floor to 3.38.6 (#1834) (#1841)

Squash of #1841 at 345ada9 against merge-base ec4bf4f.

* Explain which chat template LiteRT-LM bundles render (#1836) (#1842)

Squash of #1842 at 278b8db against merge-base ec4bf4f.

* Record LiteRT-LM thinking as N/A for bundle templates that cannot think (#1833)

Squash of #1833 at eda933e against merge-base ec4bf4f.

* Pin Windows pending-delete removal for remove and prune (#1837) (#1839)

Squash of #1839 at 403835b against merge-base b78008c.

* Pin Chrome supervisor exit precedence and post-done wait (#1837 a-d) (#1840)

Squash of #1840 at 73c66a0 against merge-base ec4bf4f.

* Refuse LiteRT-LM GPU on Linux when every Vulkan device is software (#1831)

Squash of #1831 at e51e76c against merge-base ec4bf4f.

* Require the in-process LiteRT marker for Linux and Windows LiteRT-LM embeddings (#1830)

Squash of #1830 at 0296fd5 against merge-base b78008c.

Conflict resolutions:
- website/docs/platforms/known-platform-issues.md, "## Linux and Windows", custom-runtime bullet tail and the Linux x64 GPU bullet (vs #1831): #1830's embeddings-marker paragraph replaces the legacy `v0.18.x` refusal paragraph, followed by #1831's rewritten Linux x64 software-Vulkan GPU bullet (replacing the old llvmpipe-crash bullet).

* Prepare 0.19.1 release

* State the desktop LiteRT-LM embeddings runtime floor for 0.19.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant